<?php

use Wgx\PdoEx\SqlModeEnum;

return array(
    'pub_yiyirw' => array(
        'dsn' => 'mysql:host=120.27.122.169;dbname=storeDb', // PDO::__construct(dsn) : require
        'user' => 'yiyirw', // PDO::__construct(username) : optional
        'password' => '1Pu4uX9Sm+kZhtfjPTm1FBgLDTOcGCVrH8z3scsd6Y0=', // PDO::__construct(password) : optional
        'options' => array(), // PDO::__construct(options) : optional
        'default' => true, // !empty(default) 时指示这个连接配置为默认连接配置, 优先级最高
    ),

    // !empty(default), 优先级低
    // is_string(default) 时指示 连接名为 pub_yiyirw 的连接配置为默认连接配置,
    // else 时指示 default 本身这个连接配置就是默认连接配置,
    'default' => 'pub_yiyirw',
);
// 没有明确指示 默认连接配置时, 默认 defaultName = array_keys($config)[0] 为默认连接配置, 优先级最低

/**
 * 为样例代码, 项目中将类似逻辑写到某个类中即可
 */
class DbConfig implements \Wgx\PdoEx\RwSplitConnNameGetterInterface
{
    // 主库连接名 的常量定义
    const RW_CONN_XXX = 'xxx';
    const RW_CONN_YYY = 'yyy';

    /**
     * 指示是否开启读写分离
     * @var bool
     */
    public static $rwSplit = true;

    /**
     * @inheritDoc
     */
    public function getConnName($rwConnName, $sqlMode = SqlModeEnum::READ_WRITE)
    {
        if ($sqlMode == \Wgx\PdoEx\SqlModeEnum::READ_WRITE || empty(self::$rwSplit)) {
            return $rwConnName;
        }

        // $sqlMode == \Wgx\PdoEx\SqlModeEnum::READ && self::$rwSplit
        // 没有从库就直接使用主库, 有从库的话就用算法选出一个从库并保存下来以便下次直接取到
        return "{$rwConnName}_slave";
    }
}